Online instant messaging services, such as Microsoft Corporation's MSN MESSENGER SERVICE™, provide a very convenient way for people to communicate or chat with others who are connected to a network. A user can designate specific individuals who also share a connection to the instant messaging service as contacts. The status of those designated contacts is then graphically indicated to the user when the messaging window is opened, so that the user can determine if a contact is available to engage in a chat session, is away (or the individual's computer is not energized or not connected to the network), or is otherwise engaged. A user can selectively change the status assigned to the icon representing that user, which appears in the messaging window of all others users who have designated that user as a contact. When a user boots up a computer on which the messaging service is installed, for those computers that are continuously connected to the Internet, the user is typically automatically signed in with the messaging service server. Alternatively, a user can selectively “sign in” with this server, which causes the status of the user's icon that appears in other users' messaging windows designating that user as a contact to change from “Not Online” to “Online.”
To add additional contacts to the messaging window of a user, the user need only enter the person's name and email address, or implement a search to find the information for a person within a member directory or in a contact/address list accessible via the user's computer. It is also possible for a user to send a message to another person through the messaging service if the name and email for the recipient are known, even if the intended recipient is not yet included in the list of contacts for the user. However, the recipient will need to be a user of the messaging service and be signed in.
Thus far, contacts accessible through messaging services have been limited to individuals. A user can optionally carry on a chat session with a plurality of other persons, but there is no provision in the prior art for communicating with a software application using a plain language query. The potential advantages of such a capability are significant, since data might then be readily accessed through an appropriate “software application contact” with the same ease currently enjoyed when communicating with live persons using a messaging service. For example, an online messaging service user discussing the sales of a product in different regions of the country with a contact might need to determine what the sales of the product were in a particular region last quarter. Instead of interrupting the dialogue in the messaging service to start a database program that might be used to provide the information, it would be far more efficient to simply query the database program within the messaging service program as if the database program were simply another contact. The query entered in the message chat window in plain language might be, “What was the total revenue generated by sales of widgets in the Western Region last quarter?” A software database application program should be capable of responding to this query with a similar plain language response in the instant messaging service program, such as, “The total revenue generated by the sales of widgets in the Western Region last quarter was $1,248,395.94,” or more simply, with a response such as “$1,248,395.94.”
Efficient engines for parsing a plain language query are well known in the prior art and have been developed for numerous applications. For example, a plain language query interface is provided in Microsoft Corporation's SQL SERVER™ database program that enables a user to simply type a query in English (or in a different language, depending upon the version of the interface provided). Other application programs such as Microsoft Corporation's OFFICE™ products enable a user to enter a plain language query to obtain help on a specific feature or function.
Numerous other examples exist in the prior art of software programs that parse plain language queries and return a relevant response. For example, an online search engine called ASK JEEVES™ has been developed that responds to plain language queries entered on a web page to enable a user to search for web sites and data on the Internet. The response provided is a list of questions that the parsing engine determines might be related, from which the user can select. Once a question in the list is selected, the user is connected to a web site where an answer to the question might be provided. However, use of this search engine requires that the user first open a browser program, indicate the appropriate URL for the search engine, e.g., www dot askjeeves dot com, and then type the query in the text dialog box provided on the search engine web page.
There appears to be no provision in the prior art for including a software application such as a search engine program or a database as a contact in an online messaging service, so that the software application responds to a message or query entered by a user in the chat window, just as if the software program were a live person interacting with a user in a messaging service session. As the online messaging services grow in popularity, such a feature will become increasingly more important to facilitate the efficient exchange of information between participants. Ideally, a messaging service session involving two or more live contacts and one or more software applications that interact just like a contact could provide an important tool that would enable the participants to effectively access and exchange information within the messaging service session. One of the great advantages of the Internet is the facility with which information can be obtained by anyone connected to it. Accessing data through a software resource that acts like a live contact in a messaging service session should further improve the participants' ease in obtaining information.